package com.miui.guardprovider.engine.antiy; import android.content.pm.PackageInfo; import android.text.TextUtils; import android.util.Log; import com.avl.engine.AVLAppInfo; import com.avl.engine.AVLEngine; import com.avl.engine.AVLSdkConfig; import com.miui.guardprovider.GuardApplication; import com.miui.guardprovider.aidl.VirusInfo; import com.miui.guardprovider.d.f; import com.miui.guardprovider.d.g; import com.miui.guardprovider.engine.AbsEngine; import com.miui.guardprovider.engine.EngineDesc; import java.util.ArrayList; import java.util.List; import miui.os.Build; import org.json.JSONObject; public class AvlEngine extends AbsEngine { private static final int AVL_CHECK_UPDATE_HAS_NO_UPDATE = 0; private static final int AVL_CHECK_UPDATE_HAS_UPDATE = 1; private static final String AVL_ENGINE_RESULT_DANGER = "AVL:danger;"; private static final String AVL_ENGINE_RESULT_SAFE = "AVL:safe;"; private static final int AVL_INIT_SUCCESS = 0; private static final String PROXY_LOG_UPLOAD_URI = "https://log.avlyun.sec.intl.miui.com/logupload"; public static final String SP_AVL_ENGINE_NAME = "AVL"; private static final String TAG = "AvlEngine"; private static boolean mGlobalInit = false; public AvlEngine(EngineDesc engineDesc) { super(engineDesc); } private int getAvlVirusType(int i) { if (i != 1) { return i != 2 ? 1 : 3; } return 2; } private String getDescriptionByVirusName(String str) { if (TextUtils.isEmpty(str)) { return ""; } String[] descriptionByVirusName = AVLEngine.getDescriptionByVirusName(getContext(), str); StringBuilder sb = new StringBuilder(); if (descriptionByVirusName[0] != null && descriptionByVirusName[0].startsWith("pay:") && !"pay:".equals(descriptionByVirusName[0])) { sb.append(descriptionByVirusName[0].substring(4)); } if (descriptionByVirusName[1] != null && descriptionByVirusName[1].startsWith("prv:") && !"prv:".equals(descriptionByVirusName[1])) { if (sb.length() > 0) { sb.append("\n"); } sb.append(descriptionByVirusName[1].substring(4)); } if (descriptionByVirusName[2] != null && descriptionByVirusName[2].startsWith("behavior:") && !"behavior:".equals(descriptionByVirusName[2])) { if (sb.length() > 0) { sb.append("\n"); } sb.append(descriptionByVirusName[2].substring(9)); } return sb.toString(); } private VirusInfo getVirusInfo(AVLAppInfo aVLAppInfo, String str) { VirusInfo virusInfo = new VirusInfo(); int i = 0; String str2 = ""; if (aVLAppInfo != null) { PackageInfo a2 = g.a(getContext(), aVLAppInfo.getPath()); virusInfo.packageName = a2 == null ? str2 : a2.packageName; if (a2 != null) { i = a2.versionCode; } virusInfo.versionCode = i; if (a2 != null) { str2 = a2.versionName; } virusInfo.versionName = str2; virusInfo.path = aVLAppInfo.getPath(); virusInfo.engineName = getEngineName(); virusInfo.virusName = aVLAppInfo.getVirusName(); virusInfo.virusDescription = getDescriptionByVirusName(virusInfo.virusName); virusInfo.virusLevel = getAvlVirusType(aVLAppInfo.getDangerLevel()); virusInfo.virusType = 1; int i2 = virusInfo.virusLevel; if (i2 == 2 || i2 == 3 || i2 == 6) { Log.i(TAG, "getVirusInfo packageName : " + virusInfo.packageName + " virusLevel : " + virusInfo.virusLevel); virusInfo.extras = AVL_ENGINE_RESULT_DANGER; return virusInfo; } } else { virusInfo.packageName = str2; virusInfo.versionCode = 0; virusInfo.versionName = str2; virusInfo.path = str; virusInfo.engineName = getEngineName(); virusInfo.virusName = str2; virusInfo.virusDescription = str2; virusInfo.virusLevel = 1; virusInfo.virusType = 1; } virusInfo.extras = AVL_ENGINE_RESULT_SAFE; return virusInfo; } private void setCloudScanEnabled(boolean z) { AvlEngineUtils.setCloudScanEnabled(z); } private void setRegion() { AVLEngine.setRegion(Build.getRegion()); if (GuardApplication.c) { Log.d(TAG, "region is " + Build.getRegion()); } } @Override // com.miui.guardprovider.engine.AbsEngine public void cancelScan() { this.mIsCanceled = true; if (AvlEngineUtils.stopAVLRiskScan() < 0) { Log.e(TAG, "AVL RISK Cancel error"); } } @Override // com.miui.guardprovider.engine.AbsEngine public void checkUpdate(AbsEngine.OnUpdateCheckListener onUpdateCheckListener) { } @Override // com.miui.guardprovider.engine.AbsEngine public void clean() { } @Override // com.miui.guardprovider.engine.AbsEngine public int cloudScan(List<String> list, AbsEngine.OnVirusEngineScanListener onVirusEngineScanListener) { return 1; } @Override // com.miui.guardprovider.engine.AbsEngine public String getEngineVersion() { return AVLEngine.GetEngineVersion(); } @Override // com.miui.guardprovider.engine.AbsEngine public void init(AbsEngine.OnInitCompleteListener onInitCompleteListener) { int i; synchronized (AvlEngine.class) { if (!mGlobalInit) { try { setEnableConnectNetwork(enableConnectNetwork()); setRegion(); i = AVLEngine.init(getContext(), Build.IS_INTERNATIONAL_BUILD ? new AVLSdkConfig.Builder().setLogUploadUrl(PROXY_LOG_UPLOAD_URI).build() : null); } catch (Throwable th) { Log.e(TAG, "AVL init error !", th); i = -1; } if (i == 0) { mGlobalInit = true; } if (!Build.IS_INTERNATIONAL_BUILD) { if (AvlEngineUtils.initAVLRisk(getContext()) == 0) { Log.e(TAG, "AVL RISK init error !"); } else { Log.d(TAG, "AVL RISK init success"); } } } } if (mGlobalInit) { onInitCompleteListener.onInitComplete(0); } else { onInitCompleteListener.onInitFail(-1); } } @Override // com.miui.guardprovider.engine.AbsEngine public boolean isNeedInit() { return !mGlobalInit; } @Override // com.miui.guardprovider.engine.AbsEngine public boolean isSupportCloudScan() { return !Build.IS_INTERNATIONAL_BUILD; } @Override // com.miui.guardprovider.engine.AbsEngine public void release() { } @Override // com.miui.guardprovider.engine.AbsEngine public void scan(List<String> list, AbsEngine.OnVirusEngineScanListener onVirusEngineScanListener) { scan(list, onVirusEngineScanListener, false); } @Override // com.miui.guardprovider.engine.AbsEngine public void scan(List<String> list, AbsEngine.OnVirusEngineScanListener onVirusEngineScanListener, boolean z) { scan(list, onVirusEngineScanListener, z, null); } /* JADX WARNING: Removed duplicated region for block: B:20:0x0058 */ /* JADX WARNING: Removed duplicated region for block: B:25:0x006c A[SYNTHETIC, Splitter:B:25:0x006c] */ @Override // com.miui.guardprovider.engine.AbsEngine public void scan(List<String> list, AbsEngine.OnVirusEngineScanListener onVirusEngineScanListener, boolean z, String str) { String str2; VirusInfo virusInfo; VirusInfo virusInfo2; if (onVirusEngineScanListener == null) { Log.e(TAG, "ERROR ! AVL SCAN EXIT caused by null listener"); return; } this.mIsCanceled = false; setEnableConnectNetwork(enableConnectNetwork()); setCloudScanEnabled(z); ArrayList arrayList = new ArrayList(); int size = list.size(); int i = 0; for (String str3 : list) { if (!this.mIsCanceled) { AVLAppInfo aVLAppInfo = null; try { if (!TextUtils.isEmpty(str)) { str2 = new JSONObject(str).optString("installPackage"); i++; if (this.mScanType != AbsEngine.ScanType.VIRUS_TYPE) { aVLAppInfo = TextUtils.isEmpty(str2) ? AvlEngineUtils.scan(str3) : AvlEngineUtils.scan(str3, str2); } else { try { virusInfo2 = AvlEngineUtils.scanRisk(getContext(), getEngineName(), str3); } catch (Exception e) { Log.e(TAG, "AvlEngine scan risk error", e); virusInfo2 = null; } if (virusInfo2 != null) { virusInfo = virusInfo2; arrayList.add(virusInfo); onVirusEngineScanListener.onScanProgress(0, i, size, new VirusInfo[]{(VirusInfo) arrayList.get(i - 1)}); } } virusInfo = getVirusInfo(aVLAppInfo, str3); arrayList.add(virusInfo); onVirusEngineScanListener.onScanProgress(0, i, size, new VirusInfo[]{(VirusInfo) arrayList.get(i - 1)}); } } catch (Exception e2) { Log.e(TAG, "get callPackage error : ", e2); } str2 = null; i++; if (this.mScanType != AbsEngine.ScanType.VIRUS_TYPE) { } virusInfo = getVirusInfo(aVLAppInfo, str3); arrayList.add(virusInfo); onVirusEngineScanListener.onScanProgress(0, i, size, new VirusInfo[]{(VirusInfo) arrayList.get(i - 1)}); } else { return; } } onVirusEngineScanListener.onScanFinished(false); } @Override // com.miui.guardprovider.engine.AbsEngine public void setEnableConnectNetwork(boolean z) { AVLEngine.setNetworkEnabled(z); AvlEngineUtils.setAVLRiskEnableConnectNetwork(z); } @Override // com.miui.guardprovider.engine.AbsEngine public void stopUpdate() { AVLEngine.StopUpdate(); } @Override // com.miui.guardprovider.engine.AbsEngine public void update(AbsEngine.OnUpdateListener onUpdateListener) { setEnableConnectNetwork(enableConnectNetwork()); setRegion(); int CheckUpdate = AVLEngine.CheckUpdate(); if (GuardApplication.c) { Log.i(TAG, "checkUpdate error code = " + CheckUpdate); } int i = 3; if (CheckUpdate != 0) { CheckUpdate = AVLEngine.Update(); if (GuardApplication.c) { Log.i(TAG, "update error code = " + CheckUpdate); } if (onUpdateListener == null) { return; } if (CheckUpdate > 0) { i = 0; } else if (CheckUpdate != 0) { i = 2; } } else if (onUpdateListener == null) { return; } onUpdateListener.onUpdateFinished(i, CheckUpdate); } @Override // com.miui.guardprovider.engine.AbsEngine public int urlMethod(int i, String str) { if (i == 1) { return AVLEngine.scanURL(str); } if (i != 2) { return -2; } int updateURLRule = AVLEngine.updateURLRule(); if (1 != updateURLRule) { return updateURLRule; } Log.w(TAG, "avl url db version = " + AVLEngine.getURLDatabaseVersion()); f.a().a("avl_url_sdk_version", AVLEngine.getURLDatabaseVersion()); return updateURLRule; } }